home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magic Disk 64
/
Magic_Disk_64_95-08_1995_-_de_Side_B.d64
/
sprite-source #3
< prev
next >
Wrap
Text File
|
2023-02-26
|
6KB
|
325 lines
;---------------------------------------
;
; - S P R I T E S -
;
; Source-File #3:
;
; 'Smilies Fading!'
;
; by Hannes Sommer
;
; (c) 1993 CP-Verlag Gmbh
;
;---------------------------------------
v = 53248
*= $0840
.byte 0,255,0,3,255,192
.byte 15,255,240,31,255,248
.byte 63,255,252,63,255,252
.byte 127,189,254,127,189,254
.byte 255,189,255,255,255,255
.byte 255,255,255,247,255,239
.byte 251,255,223,124,126,62
.byte 127,129,254,63,255,252
.byte 63,255,252,31,255,248
.byte 15,255,240,3,255,192
.byte 0,255,0,0
lda #255 ;Initialisierung!
sta v+21
lda #0
sta v+16
lda #160
sta v2
lda #88
sta v2+1
ldx #7
i0 lda #33
sta 2040,x
lda cols,x
sta v+39,x
dex
bpl i0
lda #0
sta $d020
sta $d021
sei
lda #<irq
sta $0314
lda #>irq
sta $0315
lda #129
sta $d01a
lda #27
sta $d011
lda #250
sta $d012
cli
ldx #0
i1 lda text,x
beq i2
jsr $ffd2
inx
bne i1
i2
end rts
text .byte 13,18
.text "joystick-abfrage im "
.text "irq aktiviert."
.byte 146,13,13,0
;---------------------------------------
; I R Q
;---------------------------------------
irq lda $d019
sta $d019
bmi t1
lda $dc0d
cli
jmp $ea31
t1
lda $d012
cmp #200
bcs t2
jmp irq2
t2 lda #140
sta $d012
lda $dc00 ;Joystick!
sta joyst
and #1 ;up ?
bne t5
lda ypoint
cmp #1
beq t10
dec ypoint
jmp t10
t5 lda joyst
and #2 ;down ?
bne t8
lda ypoint
cmp #31
beq t10
inc ypoint
bne t10
t8 lda #0 ;Y-Bremse...
inc t8+1
and #1
bne t10
lda ypoint
cmp #16
beq t10
bcc t9
dec ypoint
bne t10
t9 inc ypoint
t10
lda joyst
and #4 ;left ?
bne t15
lda xpoint
cmp #1
beq t20
dec xpoint
jmp t20
t15 lda joyst
and #8 ;right ?
bne t18
lda xpoint
cmp #31
beq t20
inc xpoint
bne t20
t18 lda #0 ;X-Bremse...
inc t18+1
and #1
bne t20
lda xpoint
cmp #16
beq t20
bcc t19
dec xpoint
bne t20
t19 inc xpoint
t20
ldx #7
t41 ldy mal2,x
lda v2-2,y
sta v2,y
lda v2-1,y
sta v2+1,y
lda v+16
and oder-1,x
beq t42
lda v+16
ora oder,x
sta v+16
bne t43
t42 lda v+16
and und,x
sta v+16
t43 dex
bne t41
lda ypoint ;Y-moving !
clc
adc #1
lsr a
lsr a
tax
lda v2+1
clc
adc speedtab,x
sta v2+1
cmp #50
bcs t21
lda #50
sta v2+1
lda ypoint
eor #31
clc
adc #2
sta ypoint
jmp t25
t21 cmp #130
bcc t25
lda #130
sta v2+1
lda ypoint
and #254
eor #31
sta ypoint
t25
lda xpoint ;X-moving !
clc
adc #1
lsr a
lsr a
tax
cpx #4
bcs t35
lda v2
clc
adc speedtab,x
sta v2
bcs t31
lda v+16
and #254
sta v+16
t31
lda v+16
and #1
bne t40
lda v2
cmp #24
bcs t40
lda #24
sta v2
lda xpoint
eor #31
clc
adc #2
sta xpoint
jmp t40
t35 lda v2
clc
adc speedtab,x
sta v2
bcc t36
lda v+16
ora #1
sta v+16
t36 lda v+16
and #1
beq t40
lda v2
cmp #63
bcc t40
lda #64
sta v2
lda xpoint
and #254
eor #31
sta xpoint
t40
ldx #15
t50 lda v2,x
sta v,x
dex
bpl t50
lda #0
sta $d021
irqend jmp $ea81
;---------------------------------------
; I R Q # 2
;---------------------------------------
irq2
lda #250
sta $d012
ldx #0 ;Sprites verdoppeln!
t80 lda #150
sec
sbc v+1,x
adc #128
sta v+1,x
inx
inx
cpx #16
bne t80
ldx #6
lda #150
t81 cmp $d012
bcs t81
stx $d021
jmp irqend
joyst .byte 0
xpoint .byte 16
ypoint .byte 16
speedtab .byte 252,253,254,255,0
.byte 1,2,3,4
cols .byte 7,13,15,10,12,8,11,9
mal2 .byte 0,2,4,6,8,10,12,14
oder .byte 1,2,4,8,16,32,64,128
und .byte 254,253,251,247
.byte 239,223,191,127
v2 .byte 0,0,0,0,0,0,0,0
.byte 0,0,0,0,0,0,0,0